From a system health perspective, it is desirable to monitor and manage networks so as to detect and respond to selected conditions and activity. Although network management means different things to different users, it is generally referred to as a service that employs a variety of tools, applications and/or devices to assist network managers in monitoring and maintaining networks.
Most network management architectures use similar structures and sets of relationships. Managed devices (end stations) such as computer systems and other network devices, run software that enables them to send alerts when they recognize problems (e.g. when one or more user-defined thresholds are met or exceeded). Upon receiving an alert, a management entity is programmed to react by executing one or more actions such as, for example, user or management notification, event logging, system shutdown, and/or automated repair.
In operation, management entities can poll the above end stations (automatically or in response to a user request) to determine the values of selected variables being monitored. Software modules (agents) function to respond to such poll. Specifically, these agents compile information regarding the managed devices in which they reside, store the information in a database, and provide it to management entities within Network Management Systems (NMSs) via network management protocols.
The International Organization for Standardization (ISO) network management forum divided network management into five functional areas, namely: fault management, configuration management, performance management, security management, and accounting management.
By way of overview, fault management is simply the process of locating, isolating and fixing (where possible) problems or faults on a network to keep it running efficiently. Because faults can cause significant and expensive downtime and/or network degradation, fault management is perhaps the most widely implemented ISO network management element.
The configuration of network devices controls the behavior of the underlying network. Accordingly, configuration management is the process of finding and setting up (configuring) these important devices. The goal of configuration management is to monitor network and system configuration information so that the effects on network operation of various versions of hardware and software elements can be tracked and managed. Each network device has a variety of version information associated with it. Configuration management subsystems store this information in a database for access. In operation, when a problem occurs, this database can be searched for clues to help solve the identified problem.
Security management is the process of controlling access to information on a network. It provides a way to monitor access points and records information on a periodic basis. Security management may also provide audit trails and/or sound alarms for security breaches. The goal of security management is simply to control access to network resources according to specified guidelines so that sensitive information is not compromised. A security management subsystem, for example, can monitor users logging into or using a network resource and can refuse access to those who enter without authorization. As those skilled in the art are aware, security management subsystems function by partitioning network resources into authorized and unauthorized areas based on department, access origination, etc. Security management subsystems perform several functions, including identifying sensitive network resources and determining mappings between sensitive network resources. As indicated above, they can also monitor access points (e.g. to sensitive network resources) and log inappropriate or unauthorized access or access attempts to such resources.
Referring still to the ISO network management model, performance management is the process of measuring and making available various aspects of network performance so that internetwork performance can be maintained at an acceptable level. Specifically, performance management functions to measure network hardware, software and media, including, for example, overall throughput, percentage utilization, error rates and response time. Performance management generally involves three main steps: (1) gathering data on selected variables of interest to network administrators; (2) analyzing the data to determine normal (baseline) levels; and (3) determining appropriate performance thresholds so that exceeding such thresholds will indicate a network problem or condition to be identified and provided attention. In operation, management entities regularly perform the above “thresholding” i.e. monitor performance variables, so that a suitable alarm can be generated and sent to a network management system if the corresponding performance threshold is exceeded.
Finally, accounting management in accordance with the ISO model involves tracking utilization and grouping of network resources to ensure that users have sufficient resources and further to provide and remove permission to use such resources. The goal of accounting management is thus to measure network utilization parameters so that individual or group users on the network can be properly regulated. This regulation minimizes network problems and maximizes the fairness of network access. For example, using accounting management, network resources can be apportioned based on resource capacities or other suitable basis. Similar to performance management, the first step of accounting management is to measure the utilization of selected network resources. The results are thereafter analyzed to provide insight into current usage patterns and to set appropriate usage quotas. Ongoing measurement of resource use may further provide billing information as well as information used to assess continued fair and optimal resource utilization.
It is specifically desirable to monitor and manage telecommunications networks where undesirable conditions and/or problems can quickly degrade the overall network and interrupt customer access and utilization with severe consequences. Such management may include monitoring of one or more of the above ISO model areas. To do so, however, custom business logic has heretofore been required to be designed, manually coded, and implemented on a task by task basis. As those skilled in the art will appreciate, such development and coding required for each management application is not only time consuming and expensive, but limits network management to a select group of highly skilled programmers and/or managers generally within corporate Information Technology (IT) departments or third party vendors who may be inaccessible years later.
Fourth generation programming (4GL) tools have been developed generally to automate the creation of software applications. Such tools have been developed to allow users to design applications and to automatically generate code that implements the applications by interacting with user interface controls.
For example, a 4GL programming tool may present an application designer with a window that represents the interface that the application (to be generated) will display to users. The 4GL tool may similarly present the application designer with user interface design tools that allow the application designer to visually construct standard user interface components on a window. For example, the user interface design tool may allow the application designer to place check boxes, menus, dialog boxes, list boxes, etc. onto a window, and allow the application designer to specify what should happen when the user interacts with those components. The user may access and view a property pull down window or “palette” for each user interface component that the user has place on the window. The pull down window lists the properties of the user interface component that can be specified by the user, and the current value of those properties.
Once the application designer has finished designing the application, the 4GL programming tool automatically generates code for the application. The form of the code may, of course, vary from implementation to implementation. For example, the 4GL programming tool may generate machine-readable code, source code, and/or metadata.
As seen, 4GL programming tools have made designing applications much easier and quicker and hopefully less error prone than the above referenced manual coding techniques. However, with this ease and speed has come a corresponding loss of flexibility in that typical 4GL tools have heretofore been generally limited to standard or “canned” sets of user interface components directed to highly specific tasks and thus highly specific data analysis. Thus, while 4GL systems are believed to have be disclosed and implemented for use in telecommunications network management, such as, for example, “Ab Initio” distributed by Ab Initio Software Corporation of Lexington, Mass., none are known to provide higher level data processing or “dimensioning” so as to allow users to segment desired analysis on a case by case basis.
Consequently, a need has developed for an improved network management tool and functionality which substantially automates the implementation of the above custom business logic so that selected telecommunications network conditions can be quickly and easily analyzed and reported in real time. Such a management tool and functionality should preferably, but not necessarily, be implemented in a 4GL language, should perform predetermined processing and data storage functions, and should specifically permit specification of dimensions for which data processing is to be applied as well as specification of dimensions for which data is to be presented.